#pragma once

#ifndef FILE_MATCH
#define FILE_MATCH

/*! \file FileMatch.h
	\brief Header file for FileMatch class.
	
	Details.
*/

#include "FileType.h"

namespace analyzer {
	
	//! This class remember two values: matching and type of file
	class FileMatch
	{
	public:		
		/*! \fn FileMatch(void)
			\brief Constructor of class FileInfo
		*/
		FileMatch(void);
		
		/*! \fn FileMatch(bool matched, FileType fileType)
			\brief Constructor of class FileInfo
			\param matched 
			\param fileType 
		*/
		FileMatch(bool matched, FileType fileType);
		
		/*! \fn ~FileInfo(void)
			\brief Destructor of class FileInfo.
		*/
		~FileMatch(void);

		/*! \fn bool isMatched() const
			\brief This method returns a true value if the file is set to match.
			\return Boolean value if the file match.
		*/
		bool isMatched() const;
		
		/*! \fn FileType getFileType() const
			\brief This method returns the enumeration type of file.
			\return Enumeration FileType - (UNKNOWN_FILE, HEADER_FILE or SOURCE_FILE).
		*/
		FileType getFileType() const;

		/*! \fn operator bool() const
			\brief Operator bool() returns true if the file is set to match.
		*/
		operator bool() const;

	private:
		bool matched;
		FileType fileType;
	};
}

#endif // FILE_MATCH